package com.ruicar.afs.cloud.contract.gateway.processor.api;

import cn.hutool.json.JSON;
import com.ruicar.afs.cloud.contract.gateway.beans.ApiDefine;
import com.ruicar.afs.cloud.contract.gateway.beans.GateWayResponse;
import com.ruicar.afs.cloud.contract.gateway.enums.ProcessorName;

/**
 * The type ApiProcessor
 * <p>Description: </p>
 *
 * @author Fzero
 * @version 1.0
 * @date Created on 2020.07.20 21:17:41
 * @since 1.0
 */
public interface ApiProcessor {
    /**
     * Process name processor name
     *
     * @return the processor name
     */
    ProcessorName processName();

    /**
     * Process gate way response
     *
     * @param params    params
     * @param apiDefine api define
     * @return the gate way response
     */
    GateWayResponse process(JSON params, ApiDefine apiDefine);
}
